package com.ruoyi.projects.service.impl;

import java.util.List;

import com.ruoyi.common.constant.BuConstants;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.projects.utils.WechatConfigUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.projects.mapper.WechatConfigMapper;
import com.ruoyi.projects.domain.WechatConfig;
import com.ruoyi.projects.service.IWechatConfigService;
import javax.annotation.PostConstruct;

/**
 * 小程序、商户相关配置Service业务层处理
 * 
 * @author ruoyi
 * @date 2022-01-06
 */
@Service
public class WechatConfigServiceImpl implements IWechatConfigService 
{
    @Autowired
    private WechatConfigMapper wechatConfigMapper;

    /**
     * 项目启动时初始化微信配置到Redis
     */
    @PostConstruct
    public void initWechatConfig() {
        WechatConfig wechatConfig = new WechatConfig();
        List<WechatConfig> configList = wechatConfigMapper.selectWechatConfigList(wechatConfig);
        if (configList != null && !configList.isEmpty()) {
            WechatConfigUtils.setWechatCache(BuConstants.REDIS_WECHATCONFIG_KEY, configList.get(0));
        }
    }

    /**
     * 查询小程序、商户相关配置
     * 
     * @param id 小程序、商户相关配置主键
     * @return 小程序、商户相关配置
     */
    @Override
    public WechatConfig selectWechatConfigById(Long id)
    {
        return wechatConfigMapper.selectWechatConfigById(id);
    }

    /**
     * 查询小程序、商户相关配置列表
     * 
     * @param wechatConfig 小程序、商户相关配置
     * @return 小程序、商户相关配置
     */
    @Override
    public List<WechatConfig> selectWechatConfigList(WechatConfig wechatConfig)
    {
        return wechatConfigMapper.selectWechatConfigList(wechatConfig);
    }

    /**
     * 新增小程序、商户相关配置
     * 
     * @param wechatConfig 小程序、商户相关配置
     * @return 结果
     */
    @Override
    public int insertWechatConfig(WechatConfig wechatConfig)
    {
        wechatConfig.setCreateTime(DateUtils.getNowDate());
        return wechatConfigMapper.insertWechatConfig(wechatConfig);
    }

    /**
     * 修改小程序、商户相关配置
     * 
     * @param wechatConfig 小程序、商户相关配置
     * @return 结果
     */
    @Override
    public int updateWechatConfig(WechatConfig wechatConfig)
    {
        wechatConfig.setUpdateTime(DateUtils.getNowDate());
        int i = wechatConfigMapper.updateWechatConfig(wechatConfig);
        if (i>0){
            WechatConfigUtils.setWechatCache(BuConstants.REDIS_WECHATCONFIG_KEY,wechatConfigMapper.selectWechatConfigById(wechatConfig.getId()));
        }
        return i;
    }

    /**
     * 批量删除小程序、商户相关配置
     * 
     * @param ids 需要删除的小程序、商户相关配置主键
     * @return 结果
     */
    @Override
    public int deleteWechatConfigByIds(Long[] ids)
    {
        return wechatConfigMapper.deleteWechatConfigByIds(ids);
    }

    /**
     * 删除小程序、商户相关配置信息
     * 
     * @param id 小程序、商户相关配置主键
     * @return 结果
     */
    @Override
    public int deleteWechatConfigById(Long id)
    {
        return wechatConfigMapper.deleteWechatConfigById(id);
    }
}
